Aller au contenu principal

Algèbre de Boole

La logique binaire est une sous ensemble des mathématiques inventé par George Boole, un mathématicien anglais du 19e siècle. Appelée algèbre de Boole, cette algèbre n'accepte que deux valeurs numériques : 0 et 1.

Suivant le contexte de l'application ces 2 valeurs peuvent prendre les représentations suivantes :

10Utilisation
⊤⊥
onoff
allumééteintlampe
marchearrêtmoteur
hautbas
positifnégatif
+5 V0 Vsystème électrique
vraifaux
truefalse
ouinon
yesno
okko
réussiteéchec
noirblancdessin sur une feuille de papier

En informatique les variables logiques s'appellent des variables booléennes ou des booléens (en : boolean).

Diagramme de Venn​

Les diagrammes de Venn sont des représentations graphiques pour visualiser les opérations booléennes.

NON Venn

Les trois opérateurs logiques de base​

https://commons.wikimedia.org/wiki/Logic_gates_unified_symbols

NON​

La fonction NON (en : NOT) inverse le résultat, c'est qui est vrai devient faux et ce qui est faux devient vrai.

aNON(a)
01
10

ā      : algèbre de Boole
!a     : Java, Javascript, C#, C++, Objective C ; Swift
NOT(a) : SQL
Non(a) : 4D
1
!false = ;
!true =  ;

ET​

DÉFINITION

L'opérateur ET (AND) est une fonction à deux opérandes (a et b), qui associe un résultat vrai seulement si les deux opérandes (a et b) ont la valeur vrai.

a | b| a ET b -:-|-:-|-:- 0 | 0| 0 0 | 1| 0 1 | 0| 0 1 | 1| 1

OU​

DÉFINITION

L'opérateur OU ou OU inclusif (en : OR) est une fonction à deux opérandes (a et b), qui associe un résultat vrai si au moins un des deux opérandes (a ou b) a la valeur vrai.

aba OU b
000
011
101
111

En informatique l’opérateur OR utilise généralement le double symbole : a || b

System.out.println("false || false = " + (false || false)); System.out.println("false || true = " + (false || true)); System.out.println("true || false = " + (true || false)); System.out.println("true || true = " + (true || true));

Les autres fonctions​

OUI​

DÉFINITION

L'opérateur OUI est une fonction à un opérande, qui associe un résultat qui a la même valeur que celle de l'opérande.

a

a OUI(a) 0 0 1 1

En informatique la fonction OUI n'existe pas telle quelle. Le fait d'utiliser une assignation (=) dans une fonction logique peut s'apparenter à la fonction OUI Dans d'autres domaines la fonction OUI correspond à un interrupteur ou un relais. Par exemple un interrupteur à "on" allume une lampe : La fonction entre l'interrupteur et la lampe est OUI.

OU EXCLUSIF​

DÉFINITION

L'opérateur OU exclusif (en : XOR - eXclusive OR) est une fonction à deux opérandes (a et b), qui associe un résultat vrai seulement si une seule des deux opérandes à la valeur vrai. En d'autres termes seulement si les deux opérandes ont des valeurs distinctes.

a b A XOR B
0 0 0
0 1 1
1 0 1
1 1 0

false ^ false = ; false ^ true = ; true ^ false = ; true ^ true = ;

⊻

En informatique la fonction XOR utilise généralement le symbole : A ^ B

a 1 NON a
a 0 a
a a 0
a NON a 1

ET INCLUSIF​

DÉFINITION

L'opérateur ET inclusif (appelé aussi coïncidence ou équivalence logique) (en : EQ Logical equality) est une fonction à deux opérandes (a et b), qui associe un résultat vrai seulement si les deux opérandes ont la même valeur.

a b ET-INCLUSIF(A, B)
0 0 1
0 1 0
1 0 0
1 1 1
ab

∧

La fonction ET inclusif et l'inverse de la fonction OU exclusif elle est appelé également XNOR (en : NOT XOR). Cette fonction permet de tester l'équivalence ou la stricte égalité de deux variables.

En informatique la fonction d'équivalence utilise généralement le double symbole : A == B. Elle peut s'écrire aussi ! (a ^ b) pour NOT XOR.

System.out.println("false == false = " + (false == false)); System.out.println("false == true = " + (false == true)); System.out.println("true == false = " + (true == false)); System.out.println("true == true = " + (true == true));

Fonctions universelles​

NON-ET​

DÉFINITION

L'opérateur NON-ET (NAND : NOT AND en anglais) est une fonction à deux opérandes, qui associe un résultat vrai si au moins une des deux opérandes à la valeur faux.

aBNON-ET(A, B)
0 0 1
0 1 1
1 0 1
1 1 0

![NAND_Venn.svg]

⊼

En informatique la fonction NON-ET n'existe pas telle quelle, on utilise la combinaison des 2 fonctions NON et ET : ! (A & B) Par contre en électronique la fonction NON-ET est omniprésente cela est dû à son caractère dit « universel », car elle permet à elle seule de reconstituer toutes les autres fonctions logiques. NON(A) NON-ET(A, A) NON-ET(A) OU(A, B) NON-ET( NON-ET(A), NON-ET(B) ) ET(A, B) NON-ET(NON-ET(A, B)) XOR(A, B) NON-ET(NON-ET(NON-ET(A), B), NON-ET(A, NON-ET(B))) Une combinaison de circuits NAND permet d'obtenir toutes les autres fonctions.

NON-OU​

DÉFINITION

L'opérateur NON-OU (NOR : NOT OR en anglais) est une fonction à deux opérandes, qui associe un résultat vrai seulement si les deux opérandes ont la valeur faux.

a b NON-OU(A, B)
0 0 1
0 1 0
1 0 0
1 1 0

En informatique la fonction NON-OU n'existe pas telle quelle, on utilise la combinaison des 2 fonctions NON et OU : ! (A | B) La fonction NON-OU, comme la fonction NON-ET, est dite « universelle », car elle permet à elle seule de reconstituer toutes les autres fonctions logiques. NON(A) NON-OU(A, A) NON-OU(A) OU(A, B) NON-OU( NON-OU(A, B) ) ET(A, B) NON-OU(NON-OU(A), NON-OU(B))

Autres fonctions​

IMPLICATION​

La fonction Implication(IMP) est un opérateur à deux opérandes, qui associe un résultat vrai si A est vrai et B est vrai aussi (A entraine B ou B suit A). Lorsque A est faux, B n'est plus entrainé par A, il est donc vrai (juste) que B prenne n'importe quelle valeur.

a b IMP(A, B)
0 0 1 B ne suit pas A : c'est vrai
0 1 1 B ne suit pas A : c'est vrai
1 0 0 B suit A : c'est faux
1 1 1 B suit A : c'est vrai

L’implication est une notion complexe à comprendre, ses fondements proviennent de la logique théorique et des mathématiques. Néanmoins elle est utilisée en informatique, par l’intermédiaire de la combinaison des opérateurs NON et OU : ! a | b et surtout dans la réalisation des tests unitaires.

Tests unitaires

Les tests unitaires sont du code informatique qui a pour but de vérifier le bon fonctionnement des programmes. Par exemple, prenons un programme qui manipule deux valeurs A et B. A représente la valeur de « J'habite en France métropolitaine » et B la valeur de « J'habite en Europe ». Le programme est juste s’il y a implication de A vers B, le test unitaire passe en revue toutes les combinaisons possibles et vérifie que le programme est juste.

  • Si j'habite en France est vrai et j'habite en Europe est vrai alors l'implication est vraie, le test est réussi
  • Si j'habite en France est vrai et j'habite en Europe est faux alors l'implication est fausse, je ne peux pas habiter en France et pas en Europe, le test échoue, le programme comporte une anomalie.
  • Si j'habite en France est faux et j'habite en Europe est vrai alors l'implication est vraie, je peux habiter dans un pays d'Europe autre que la France, le test réussi, le programme est à priori correct, on ne peut pas conclure qu'il soit faux.
  • Si j'habite en France est faux et j'habite en Europe est faux alors l'implication est vraie, j'habite dans un pays en dehors de l'Europe. Le test est réussi, le programme est juste.

INHIBITION​

La fonction Inhibition (INH) est un opérateur à deux opérandes, qui associe un résultat faux si B est vrai et un résultat égal à A si B est faux. L'opérande A est inhibée (masquée) par B.

a b INH(A, B)
0 0 0 = A
0 1 0 faux car B vrai
1 0 1 = A
1 1 0 faux car B vrai
a a a

En informatique l'inhibition s'écrit avec une combinaison des fonctions NON et ET : ! b & a